草庐IT

JavaFX - 许多静态 FXML Controller

全部标签

java - 如何在 JavaFX 折线图上添加形状

我要在LineChart上添加一些形状。我将LineChart和AnchorPane放入StackPane中。我通过从图表系列中获取x和y坐标向AnchorPane添加了形状。这是示例。LineChartApp.javapackageshapes;importjavafx.application.Application;importjavafx.scene.Scene;importjavafx.stage.Stage;publicclassLineChartAppextendsApplication{@Overridepublicvoidstart(StageprimaryStage)

java - 为什么一个采用可变参数的方法只有在它是静态的情况下才能被优化为一系列单态调用?

在vJUG24,其中一个主题是JVMperformance.可以找到幻灯片here.他有一个例子:staticvoidlog(Object...args){for(Objectarg:args){System.out.println(arg);}}这是通过调用的(不能完全正确地阅读幻灯片,但它是相似的):voiddoSomething(){log("foo",4,newObject());}他说因为是静态方法,可以这样内联优化:voiddoSomething(){System.out.println("foo");System.out.println(newInteger(4).toS

Javafx 将 ActionListener 添加到按钮

button.setOnAction(newEventHandler(){@Overridepublicvoidhandle(ActionEvente){label.setText("Accepted");}});在上面的代码中,我们定义了按下按钮时会发生什么。这一切都很好,但我想创建新的ActionListener,然后将其添加到我的按钮。通常在JButton中我可以像这样添加ActionListener:button.addActionListener(someControllerClass.createButtonListener());在上面的代码中,createButtonL

java - 使用 Javafx 在 ListView 中模仿 CTRL+单击多选

我正在尝试寻找在ListView中选择多个项目的不同方法。GUI将在触摸屏显示器上运行,因此我无法按CTRL+单击。通过研究过去的各种帖子,我已经能够通过将所有选定项目保存在一个数组中然后循环遍历它以获得最终选择来实现多重选择。我的代码唯一的问题是,与CTRL+click相比,选择是顺利完成的,因为每次选择新项目时我的代码都会导致类型闪烁。所以基本上listView会清除所有选择,然后选择正确的选择。有没有办法让这个过渡顺利进行?模拟触摸来实现CTRL+点击效果会不会更简单?selectedList=newint[totalTypes];//totalnumberofitemprope

java - 静态初始化程序在 JUnit 测试期间不运行

我这里有一个有趣的JUnit问题(JUnit4.12)。我有一个只有静态方法的基类。由于它们的使用方式,它们必须是静态的。我从基类继承其他类。所以,如果基类是Base,我们就有ChildA和ChildB。大部分方法都包含在基类中,但它必须知道它实际上是哪个子类(仅仅调用基类方法是无效的)。这是通过基类中的静态数据成员完成的:publicclassBase{protectedstaticChildTypemyType=ChildType.Invalid;...}每个child通过静态初始化器设置数据成员,因此:static{myType=ChildType.ChildA;}然后当调用方法

java - 将 JavaFX 与 Intellij IDEA 结合使用

我严格按照教程进行操作,但似乎无法正常工作。该教程位于JavaFX和IntellijNon-modularfromIDE部分:https://openjfx.io/openjfx-docs/#install-java这是我在尝试运行默认的IntellijIdeaJavaFX项目时收到的错误消息:"C:\ProgramFiles\Java\jdk-11.0.1\bin\java.exe"--module-path%PATH_TO_FX%--add-modules=javafx.controls,javafx.fxml--add-modulesjavafx.base,javafx.grap

java - 从静态语言 (java/c#) 转向动态语言(如 python)的人的主要问题

对于从静态语言(java/c#)转向动态语言(如python)的人来说,最容易遇到的问题是什么?事情的完成方式看起来很酷,但是重命名方法或添加/删除参数似乎风险太大!是否是为每个方法编写测试的唯一解决方案? 最佳答案 "Istheonlysolutiontowritetestsforeachmethod?"您是说您没有用Java为每个方法编写测试?如果您用Java为每个方法编写测试,那么——好吧——什么都没有改变,是吗?renamingamethod,seemssorisky!正确。不要这样做。adding/removingpara

java - 非静态变量不能从静态上下文中引用 - 为什么在这里?

我有一个代码:packagewhy;publicclassFoo{publicclassFoo1{Stringbar;publicFoo1(Stringbar){this.bar=bar;}publicstaticFoo1MYCONSTANT=newFoo(null);}}为什么我得到“无法从静态上下文中引用的非静态变量”?我分配了非静态类的实例。为什么还要在这里?publicstaticFoogetMYCONSTANT(){returnnewFoo(null,null);}谢谢 最佳答案 让我们看一下这个例子:publicclas

java - 我应该总是使用静态工厂方法而不是构造函数吗?

阅读EffectiveJava,似乎使用静态工厂方法有很多优点,缺点很少。我所说的静态工厂方法具体指以下内容publicclassMyClass{privateMyClass(){...};publicstaticMyClassgetInstance(){returnnewA();}}来自EffectiveJava:NotethatastaticfactorymethodisnotthesameastheFactoryMethodpatternfromDesignPatterns[Gamma95,p.107].Thestaticfactorymethoddescribedinthisi

java - 初始化大量常量时如何规避 Java 中静态初始化器的大小限制

我有一个包含大量生成常量的类:publicclassConstantsextendsSomeBaseClass{//init()isdefinedinsomebaseclass...publicstaticfinalXXXKEY1=init(...);publicstaticfinalXXXKEY2=init(...);publicstaticfinalXXXKEY3=init(...);//...publicstaticfinalXXXKEY2000=init(...);}当生成的常量数量非常多时,这会导致静态初始化程序大于Java方法大小的上限(即>64kb),从而导致编译器错误。